Page({
  data: {
    address: {
      name: '',
      phone: '',
      region: '',
      detailAddress: '',
    },
    region: ['请选择地址', '', ''],
  },

  // 选择区域时触发
  onLoad(options) {
    if (options.address) {
      try {
        const address = JSON.parse(options.address); // 解析传递的数据
        console.log('接收到的地址信息：', address);

        // 检查并设置 region 数据
        const regionArray = address.region ? address.region.split(' ') : ['', '', ''];

        this.setData({
          address: {
            name: address.name || '',
            phone: address.phone || '',
            region: address.region || '',
            detailAddress: address.detailAddress || '',
          },
          region: regionArray, // 设置 picker 的初始值
        });
      } catch (error) {
        console.error('地址解析失败:', error);
        wx.showToast({
          title: '地址信息解析失败',
          icon: 'none',
        });
      }
    }
  },

  // 选择地区时更新 region 数据
  regionChange(e) {
    this.setData({
      region: e.detail.value,
      'address.region': e.detail.value.join(' '), // 同步更新地址的 region 字段
    });
  },
  onLoad: function (options) {
    if (options.data) {
      try {
        // 解码并解析传递的数据
        const {
          address,
          uindex
        } = JSON.parse(decodeURIComponent(options.data));

        this.setData({
          address,
          region: address.region.split(' '), // 分割地址区域为数组
          uindex,
        });
      } catch (error) {
        console.error('解析传递数据失败:', error);
        wx.showToast({
          title: '数据解析失败',
          icon: 'none',
        });
      }
    } else {
      wx.showToast({
        title: '未接收到有效数据',
        icon: 'none',
      });
    }
  },


  // 验证数据完整性
  validateForm(data) {
    if (!data.name || !data.phone || !data.region || !data.detailAddress) {
      return '请填写完整信息';
    }
    if (!/^1[3-9]\d{9}$/.test(data.phone)) {
      return '手机号格式不正确';
    }
    return null;
  },

  // 提交表单
  formSubmit(event) {
    const updatedAddress = {
      ...this.data.address,
      ...event.detail.value
    };

    if (!updatedAddress.name || !updatedAddress.phone || !updatedAddress.region || !updatedAddress.detailAddress) {
      wx.showToast({
        title: '请填写完整信息',
        icon: 'none',
      });
      return;
    }

    console.log(updatedAddress, this.data.uindex);

    let addr = wx.getStorageSync('user').addresses

    addr[this.data.uindex] = updatedAddress
    console.log(addr);

    wx.request({
      url: 'http://localhost:3000/login/updateaddress', // 确保路径正确
      method: 'POST',
      header: {
        'Content-Type': 'application/json', // 确保使用 JSON 格式
      },
      data: {
        _id: wx.getStorageSync('user')._id, // 从缓存获取用户 ID
        addr
      },
      success: (res) => {
        if (res.data.code === 200) {
          wx.showToast({
            title: '地址更新成功',
            icon: 'success',
          });
          console.log("地址更新返回",res);

          wx.setStorageSync('userid', res.data.user._id)
          wx.setStorageSync('user', res.data.user)

          wx.redirectTo({
            url: '/pages/userhome/userhome',
          })


        } else {
          wx.showToast({
            title: res.data.message || '更新失败',
            icon: 'none',
          });
        }
      },
      fail: (err) => {
        console.error('请求失败:', err);
        wx.showToast({
          title: '请求失败，请检查网络',
          icon: 'none',
        });
      },
    });
  },
});